package _06;

import java.util.HashSet;
import java.util.Set;

/**
 * 问题描述
 * 　　小明对类似于 hello 这种单词非常感兴趣，这种单词可以正好分为四段，第一段由一个或多个辅音字母组成，
 *     第二段由一个或多个元音字母组成，第三段由一个或多个辅音字母组成，第四段由一个或多个元音字母组成。
 * 　　给定一个单词，请判断这个单词是否也是这种单词，如果是请输出yes，否则请输出no。
 * 　　元音字母包括 a, e, i, o, u，共五个，其他均为辅音字母。
 * 输入格式
 * 　　输入一行，包含一个单词，单词中只包含小写英文字母。
 * 输出格式
 * 　　输出答案，或者为yes，或者为no。
 * 样例输入
 * lanqiao
 * 样例输出
 * yes
 * 样例输入
 * world
 * 样例输出
 * no
 * 评测用例规模与约定
 * 　　对于所有评测用例，单词中的字母个数不超过100。
 */
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class _06 {
    static Set<Character> NoSet = new HashSet<>();
    static Set<Character> YesSet = new HashSet<>();
    public static void main(String[] args) {
        //1.用两个集合来装元音字母和辅音字母
        for (char i = 'a'; i <= 'z'; i++) {
            if (i == 'a' || i == 'e' || i == 'i' || i == 'o' || i == 'u') {//扫描元音字母加入集合中
                YesSet.add(i);
            } else {
                NoSet.add(i);
            }
        }
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int len = 0, i = 0, j = 0, k = 0, m = 0;
        //2.将字符串分四段处理
        while (len < str.length() && NoSet.contains(str.charAt(len))) {
            i = 1;
            len++;
        }
        while (len < str.length() && YesSet.contains(str.charAt(len))) {
            j = 1;
            len++;
        }
        while (len < str.length() && NoSet.contains(str.charAt(len))) {
            k = 1;
            len++;
        }
        while (len < str.length() && YesSet.contains(str.charAt(len))) {
            m = 1;
            len++;
        }
        //3.判断是否满足条件
        if (len == str.length() && i == 1 && j == 1 && k == 1 && m == 1) {
            System.out.println("yes");
        } else {
            System.out.println("no");
        }
    }
}

